home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / SOM / OpenDoc and SOM / C / Extensn.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-19  |  5.7 KB  |  208 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: Locrian:WWDCSun:C:Extensn.h.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: somc/smemit.c
  7.  *     SOM Emitter emith.dll: somc/smmain.c
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Theory of Operation
  13.  * 
  14.  * 
  15.  *  Classes defined in this interface
  16.  * 
  17.  */
  18.  
  19.  
  20. #ifndef SOM_ODExtension_h
  21. #define SOM_ODExtension_h
  22.  
  23.  
  24. #include <som.h>
  25.  
  26. /*
  27.  * -- This emitter treats Method Tokens as Thunks by default
  28.  * -- Use the sc modifier "nothunks" to change this default
  29.  */
  30. #undef somresolve_
  31. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  32.  
  33. /*
  34.  * Define the class name as an object type
  35.  */
  36. #ifndef ODExtension
  37. #define ODExtension SOMObject
  38. #endif
  39. #include <ODObject.h>
  40.  
  41. /*
  42.  * Start of user-defined types:
  43.  */
  44.  
  45. /*
  46.  * End of user-defined types.
  47.  */
  48.  
  49. #define ODExtension_MajorVersion 0
  50. #define ODExtension_MinorVersion 0
  51.  
  52. /*
  53.  * External name shortening if required
  54.  */
  55. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  56. #define ODExtensionNewClass c
  57. #define ODExtensionClassData d
  58. #define ODExtensionCClassData x
  59. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  60. /*--------------Migration------------*/
  61. #define ODExtension_classObj ODExtensionClassData.classObject
  62. #define _ODExtension ODExtension_classObj
  63.  
  64. /*
  65.  * Declare the class creation procedure
  66.  */
  67.  
  68. #if applec ^ PRAGMA_LIB_EXPORT
  69. #pragma lib_export on
  70. #endif
  71.  
  72. SOMEXTERN SOMClass * SOMLINK ODExtensionNewClass(integer4 somtmajorVersion,
  73.         integer4 somtminorVersion);
  74.  
  75. /*
  76.  * Declare the class data structure
  77.  */
  78. SOMEXTERN struct ODExtensionClassDataStructure {
  79.     SOMAny *classObject;
  80.     somMToken InitExtension;
  81.     somMToken GetBase;
  82.     somMToken Release;
  83. }
  84. #ifdef SOM_NO_DATA_EXPORTS
  85.     * ODExtensionGetClassData ( void );
  86. #   undef ODExtensionClassData
  87. #   define ODExtensionClassData (*ODExtensionGetClassData())
  88. #else
  89.       ODExtensionClassData;
  90. #endif /* SOM_NO_DATA_EXPORTS */
  91.  
  92. #if applec ^ PRAGMA_LIB_EXPORT
  93. #pragma lib_export off
  94. #endif
  95.  
  96.  
  97. /*
  98.  * Declare the C specific class data structure
  99.  */
  100. SOMEXTERN struct ODExtensionCClassDataStructure {
  101.     somMethodTabs parentMtab;
  102.     somDToken instanceDataToken;
  103. } ODExtensionCClassData;
  104.  
  105. /*
  106.  * New and Renew macros for ODExtension
  107.  */
  108. #define ODExtensionNew() \
  109.     ( ( ! (ODExtensionClassData.classObject) && \
  110.         (ODExtensionNewClass(ODExtension_MajorVersion, ODExtension_MinorVersion)) ), \
  111.       (_somNew(ODExtensionClassData.classObject)) )
  112. #define ODExtensionRenew(buf) \
  113.     ( _somRenew(ODExtensionClassData.classObject, buf) )
  114.  
  115. /*
  116.  * Override method: somInit
  117.  */
  118. #define ODExtension_somInit(somSelf) \
  119.     SOMObject_somInit(somSelf)
  120.  
  121. /*
  122.  * Override method: somUninit
  123.  */
  124. #define ODExtension_somUninit(somSelf) \
  125.     SOMObject_somUninit(somSelf)
  126.  
  127. /*
  128.  * New Method: InitExtension
  129.  */
  130. typedef void   (SOMLINK *somTD_ODExtension_InitExtension)(ODExtension *somSelf, Environment *ev,
  131.         ODObject** base);
  132. #define somMD_ODExtension_InitExtension "::ODExtension::InitExtension"
  133. #define ODExtension_InitExtension(somSelf,ev,base) \
  134.     (SOM_Resolve(somSelf, ODExtension, InitExtension) \
  135.     (somSelf,ev,base))
  136. #ifndef SOMGD_InitExtension
  137.     #if (defined(_InitExtension) || defined(__InitExtension))
  138.         #undef _InitExtension
  139.         #undef __InitExtension
  140.         #define SOMGD_InitExtension 1
  141.     #else
  142.         #define _InitExtension ODExtension_InitExtension
  143.     #endif /* _InitExtension */
  144. #endif /* SOMGD_InitExtension */
  145.  
  146. /*
  147.  * New Method: GetBase
  148.  */
  149. typedef ODObject*   (SOMLINK *somTD_ODExtension_GetBase)(ODExtension *somSelf, Environment *ev);
  150. #define somMD_ODExtension_GetBase "::ODExtension::GetBase"
  151. #define ODExtension_GetBase(somSelf,ev) \
  152.     (SOM_Resolve(somSelf, ODExtension, GetBase) \
  153.     (somSelf,ev))
  154. #ifndef SOMGD_GetBase
  155.     #if (defined(_GetBase) || defined(__GetBase))
  156.         #undef _GetBase
  157.         #undef __GetBase
  158.         #define SOMGD_GetBase 1
  159.     #else
  160.         #define _GetBase ODExtension_GetBase
  161.     #endif /* _GetBase */
  162. #endif /* SOMGD_GetBase */
  163.  
  164. /*
  165.  * New Method: Release
  166.  */
  167. typedef void   (SOMLINK *somTD_ODExtension_Release)(ODExtension *somSelf, Environment *ev);
  168. #define somMD_ODExtension_Release "::ODExtension::Release"
  169. #define ODExtension_Release(somSelf,ev) \
  170.     (SOM_Resolve(somSelf, ODExtension, Release) \
  171.     (somSelf,ev))
  172. #ifndef SOMGD_Release
  173.     #if (defined(_Release) || defined(__Release))
  174.         #undef _Release
  175.         #undef __Release
  176.         #define SOMGD_Release 1
  177.     #else
  178.         #define _Release ODExtension_Release
  179.     #endif /* _Release */
  180. #endif /* SOMGD_Release */
  181. #ifndef SOM_DONT_USE_INHERITED_MACROS
  182. #define ODExtension_InitObject ODObject_InitObject
  183. #define ODExtension_IsInitialized ODObject_IsInitialized
  184. #define ODExtension_HasExtension ODObject_HasExtension
  185. #define ODExtension_GetExtension ODObject_GetExtension
  186. #define ODExtension_ReleaseExtension ODObject_ReleaseExtension
  187. #define ODExtension_Purge ODObject_Purge
  188. #define ODExtension_SubClassResponsibility ODObject_SubClassResponsibility
  189. #define ODExtension_somFree SOMObject_somFree
  190. #define ODExtension_somGetClass SOMObject_somGetClass
  191. #define ODExtension_somGetClassName SOMObject_somGetClassName
  192. #define ODExtension_somGetSize SOMObject_somGetSize
  193. #define ODExtension_somIsA SOMObject_somIsA
  194. #define ODExtension_somIsInstanceOf SOMObject_somIsInstanceOf
  195. #define ODExtension_somRespondsTo SOMObject_somRespondsTo
  196. #define ODExtension_somDispatchV SOMObject_somDispatchV
  197. #define ODExtension_somDispatchL SOMObject_somDispatchL
  198. #define ODExtension_somDispatchA SOMObject_somDispatchA
  199. #define ODExtension_somDispatchD SOMObject_somDispatchD
  200. #define ODExtension_somDispatch SOMObject_somDispatch
  201. #define ODExtension_somClassDispatch SOMObject_somClassDispatch
  202. #define ODExtension_somPrintSelf SOMObject_somPrintSelf
  203. #define ODExtension_somDumpSelf SOMObject_somDumpSelf
  204. #define ODExtension_somDumpSelfInt SOMObject_somDumpSelfInt
  205. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  206.  
  207. #endif       /* SOM_ODExtension_h */
  208.